# 智能语音生成
# 支持的音色
# zh-CN-XiaoxiaoNeural：中文（简体）- 晓晓
# zh-CN-XiaoyiNeural：中文（简体）- 晓伊
# zh-CN-YunyangNeural：中文（简体）- 云阳
# zh-CN-YunyeNeural：中文（简体）- 云野
# zh-CN-liaoning-XiaobeiNeural：中文（简体，辽宁）- 小北
# zh-CN-shaanxi-XiaoniNeural：中文（简体，陕西）- 小妮
# edge-tts --voice zh-CN-XiaoxiaoNeural --text "大家好，今天可以使用1234元购买2012年2月03日的鸡蛋" --write-media hello_sx_cn.mp3

import asyncio
from edge_tts import Communicate, VoicesManager
import pygame
import time

async def text_to_speech(text, output_file, voice="zh-CN-XiaoxiaoNeural"):
    communicate = Communicate(text=text, voice=voice)
    await communicate.save(output_file)

def play_audio(file_path):
    pygame.mixer.init()
    pygame.mixer.music.load(file_path)
    pygame.mixer.music.play()
    while pygame.mixer.music.get_busy():
        time.sleep(1)

# 生成语音文件
text = "Edge-TTS 是一个由 Python 编写的开源项目，允许用户通过 Microsoft Edge 的在线文本到语音服务，从 Python 代码中生成高质量的语音。该项目不需要 Microsoft Edge 浏览器或 Windows 系统，也不需要 API 密钥，即可使用。"
output_file = "dist/output.mp3"
asyncio.run(text_to_speech(text, output_file))

# 播放生成的音频文件
play_audio(output_file)